[XEN] Fix dom/sysctl structure alignement.
authorIan Campbell <ian.campbell@xensource.com>
Wed, 31 Jan 2007 16:54:21 +0000 (16:54 +0000)
committerIan Campbell <ian.campbell@xensource.com>
Wed, 31 Jan 2007 16:54:21 +0000 (16:54 +0000)
Versions of gcc up to and including 3.3 appear to ignore
__attribute__((align(x))) when applied to typedefs or to members of
anonymous unions. Workaround this by explicitly aligning each
definition of a 64 bit guest handle.

Tidy up x86_64 compat entry.S a bit.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
xen/arch/x86/x86_64/compat/entry.S
xen/include/public/arch-x86/xen-x86_32.h

index dadd1abe657be6269a45f8c9cec9d95a0b081a55..070deec3d1cc926ab056c5e535cc041377f8418a 100644 (file)
@@ -281,9 +281,6 @@ CFIX14:
         .quad CFLT14,CFIX14
 .previous
 
-compat_domctl:
-compat_sysctl:
-
 .section .rodata, "a", @progbits
 
 ENTRY(compat_hypercall_table)
@@ -365,8 +362,8 @@ ENTRY(compat_hypercall_args_table)
         .byte 2 /* compat_event_channel_op  */
         .byte 2 /* compat_physdev_op        */
         .byte 2 /* do_hvm_op                */
-        .byte 1 /* compat_sysctl            */  /* 35 */
-        .byte 1 /* compat_domctl            */
+        .byte 1 /* do_sysctl                */  /* 35 */
+        .byte 1 /* do_domctl                */
         .byte 2 /* compat_kexec_op          */
         .rept NR_hypercalls-(.-compat_hypercall_args_table)
         .byte 0 /* compat_ni_hypercall      */
index 6728b818cde3f49bfebb26f9149304977e2daeba..2633ff082fe1b367f07a16dddaa202b51270d0f7 100644 (file)
          (hnd).p = val;                                     \
     } while ( 0 )
 #define uint64_aligned_t uint64_t __attribute__((aligned(8)))
-#define XEN_GUEST_HANDLE_64(name) __guest_handle_64_ ## name
+#define XEN_GUEST_HANDLE_64(name) __guest_handle_64_ ## name __attribute__((aligned(8)))
 #endif
 
 #ifndef __ASSEMBLY__